/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.edu.unicen.twitter.suggest.backend.recommendation.crawling;

import ar.edu.unicen.twitter.suggest.backend.recommendation.CompararUsuarios.CompararUsuarios;
import ar.edu.unicen.twitter.suggest.backend.recommendation.CriterioUsuario.CriterioUsuario;
import ar.edu.unicen.twitter.suggest.commons.dtos.Usuario;
import java.util.Collection;

/**
 *
 * @author Alex
 */
public interface RecoleccionFactory {
    
    public static enum TipoNivel{NivelSeguidos, NivelSeguidores, NivelAmigos};
    public static enum TipoTransicion{Binaria, Normalizada, Probabilistica};
    
    public Usuario getUsuario(long id);
    Collection<Usuario> verificar(Collection<Usuario> usuarios);
    
    public NivelRecoleccion getNivelRecoleccion(TipoNivel tipoNivel, TipoTransicion tipoTransicion, CriterioUsuario criterio2,
                            CompararUsuarios comparador,
                            int maxNivel);
    
    public Collection<Usuario> getSeguidos(Usuario u);
    public Collection<Usuario> getSeguidores(Usuario u);
    public Collection<Usuario> getAmigos(Usuario u);
    
    public int getMaxArcos();
    public void setMaxArcos(int maxArcos);
}
